/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itsc.dswII.view;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dswII.biblioteca.bl.LibroBLLocal;
import mx.its.dswII.biblioteca.bl.PrestamoBlLocal;
import mx.its.dswII.biblioteca.bl.UsuarioBlLocal;
import mx.its.dswII.biblioteca.modelo.Libro;
import mx.its.dswII.biblioteca.modelo.Prestamo;
import mx.its.dswII.biblioteca.modelo.Usuario;

/**
 *
 * @author Lenovo-user
 */
@ManagedBean
@SessionScoped
public class PrestamoBean {

    @EJB
    private LibroBLLocal libroBl;
    @EJB
    private UsuarioBlLocal usuarioBl;
    @EJB
    private PrestamoBlLocal prestamoBl;
    ///////////////
    private List<Usuario> listaUsuario;
    private List<Libro> listaLibro;
    private List<Prestamo> lista;
    private Prestamo prestamo;
    private String accion;
    private int idUsuarioSeleccionado;
    private String claveLibro;
    private boolean visible = false;
    private Usuario user;

    public Usuario getUser() {
        return user;
    }

    public void setUser(Usuario user) {
        this.user = user;
    }

    public boolean isVisible() {
        return visible;
    }

    public void setVisible(boolean visible) {
        this.visible = visible;
    }

    public PrestamoBean() {
        prestamo = new Prestamo();
        listaLibro = new ArrayList<Libro>();
    }

    public List<Libro> getListaLibro() {
        return listaLibro;
    }

    public List<Prestamo> getLista() {
        lista = prestamoBl.getAll();
        return lista;
    }

    public List<Usuario> getListaUsuario() {
        listaUsuario = usuarioBl.getAll();
        return listaUsuario;
    }

    public Prestamo getPrestamo() {
        return prestamo;
    }

    public void setPrestamo(Prestamo prestamo) {
        this.prestamo = prestamo;
    }

    public int getIdUsuarioSeleccionado() {
        return idUsuarioSeleccionado;
    }

    public void setIdUsuarioSeleccionado(int idUsuarioSeleccionado) {
        this.idUsuarioSeleccionado = idUsuarioSeleccionado;
    }

    public String getClaveLibro() {
        return claveLibro;
    }

    public void setClaveLibro(String claveLibro) {
        this.claveLibro = claveLibro;
    }

    public String prepararAutor() {
        //libro = new Libro();
        return "LibroConfirmar";
    }

    public void mostrarContenido(ActionEvent evt) {
        visible = true;
//        user.setIdusuario(usuarioBl.findById(idUsuarioSeleccionado));
    }

    public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
            Prestamo p = new Prestamo();
            prestamoBl.lendBooks(prestamo.getIdUsuario(), listaLibro);
            return "PrestamoLista";
        } else if (accion.equalsIgnoreCase("Editar")) {
            prestamoBl.takeBack(listaLibro);
            return "";

        }
        accion = "";
        return "PrestamoLista";
    }

    public void prepararNuevo(ActionEvent evt) {
        prestamo = new Prestamo();
        listaLibro = new ArrayList<Libro>();
        accion = "Nuevo";
    }

    public void prepararEditar(ActionEvent evt) {
        System.out.println(evt.getComponent().getClientId());
        String[] arreglo = evt.getComponent().getClientId().split(":");
        String num = arreglo[2];
        int index = Integer.parseInt(num);
        prestamo = lista.get(index);
        accion = "Editar";
        // int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
    }

    public void prepararEliminar(ActionEvent evt) {
        System.out.println(evt.getComponent().getClientId());
        String[] arreglo = evt.getComponent().getClientId().split(":");
        String num = arreglo[2];
        int index = Integer.parseInt(num);
        prestamo = lista.get(index);
        accion = "Eliminar";
    }

    public void agregarLibro(ActionEvent evt) {

        Libro l = libroBl.findBookForLend(claveLibro);
        if (l != null) {
            listaLibro.add(l);
        }
    }

    public void eliminarLibro(ActionEvent evt) {
        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        listaLibro.remove(index);
    }

    public void procesarSeleccion(ActionEvent evt) {
//        prestamo.setIdusuario(usuarioBl.findById(idUsuarioSeleccionado));
    }
}
